﻿using B.MES.Customer.Domain;
using B.MES.Customer.Domain.DTO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace B.MES.Customer.Application.IApplication
{
    /// <summary>
    /// 入库服务层
    /// </summary>
    public interface IStorageApplication:IBaseApplication<StockIn>
    {
        /// <summary>
        /// 入库添加
        /// </summary>
        /// <param name="stockIn"></param>
        /// <returns></returns>
        APIResult<StockInDTO> AddStockIn(StockInDTO stockIn);

         /// <summary>
        /// 显示全部仓库
        /// </summary>
        /// <returns></returns>
        List<WarehouseMemuItem> GetMemus();

        /// <summary>
        /// 入库显示+分页+查询
        /// </summary>
        /// <param name="productionOrderID"></param>
        /// <param name="stockInSubject"></param>
        /// <param name="stockInDate"></param>
        /// <returns></returns>
        PageApiResut<StockIn> GetStockInPage(string? productionOrderID, string? stockInSubject, int page, int size);

        /// <summary>
        /// 删除入库信息
        /// </summary>
        /// <param name="stockInId"></param>
        /// <returns></returns>
        APIResult<StockIn> DeleteData(int stockInId);

        /// <summary>
        /// 入库反填
        /// </summary>
        /// <param name="stockInId"></param>
        /// <returns></returns>
        APIResult<StockInSelDTO> GetStockInSel(int stockInId);

        /// <summary>
        /// 入库修改
        /// </summary>
        /// <param name="stockInSel"></param>
        /// <returns></returns>
        APIResult<StockInSelDTO> UpdateStockInSel(StockInSelDTO stockInSel);
    }
}
